{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn import datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "iris =  datasets.load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = iris.data\n",
    "y = iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = X[y < 2, :2]\n",
    "y = y[y < 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 2)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100,)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113ab6f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[y == 0, 0], X[y == 0, 1], color='blue')\n",
    "plt.scatter(X[y == 1, 0], X[y == 1, 1], color = 'red')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "standardScaler = StandardScaler()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StandardScaler(copy=True, with_mean=True, with_std=True)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "standardScaler.fit(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_standard = standardScaler.transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 2)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_standard.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.svm import LinearSVC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "svc = LinearSVC(C=1e9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearSVC(C=1000000000.0, class_weight=None, dual=True, fit_intercept=True,\n",
       "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
       "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
       "     verbose=0)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc.fit(X_standard, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_decision_boundary(model, axis):\n",
    "    \n",
    "    x0, x1 = np.meshgrid(\n",
    "        np.linspace(axis[0], axis[1], int((axis[1] - axis[0]) * 100)).reshape(-1, 1),\n",
    "        np.linspace(axis[2], axis[3], int((axis[3] - axis[2]) * 100)).reshape(-1, 1)\n",
    "    )\n",
    "    X_new = np.c_[x0.ravel(), x1.ravel()]\n",
    "    \n",
    "    y_predict = model.predict(X_new)\n",
    "    zz = y_predict.reshape(x0.shape)\n",
    "    \n",
    "    from matplotlib.colors import ListedColormap\n",
    "    custom_cmap = ListedColormap(['#EF9A9A', '#FFF59D', '#90CAF9'])\n",
    "    \n",
    "    plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/Winter/anaconda3/lib/python3.6/site-packages/matplotlib/contour.py:967: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  s)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11639e0f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_boundary(svc, axis=[-3, 3, -3, 3])\n",
    "plt.scatter(X_standard[y == 0, 0], X_standard[y == 0, 1])\n",
    "plt.scatter(X_standard[y == 1, 0], X_standard[y == 1, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 4.03241395, -2.49297103]])"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.95367935])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "svc2 = LinearSVC(C=0.01)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearSVC(C=0.01, class_weight=None, dual=True, fit_intercept=True,\n",
       "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
       "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
       "     verbose=0)"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc2.fit(X_standard, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.44053168, -0.40861728]])"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc2.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.0058045])"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc2.intercept_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/Winter/anaconda3/lib/python3.6/site-packages/matplotlib/contour.py:967: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  s)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a20ce8710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_boundary(svc2, axis = [-3, 3, -3, 3])\n",
    "plt.scatter(X_standard[y == 0, 0], X_standard[y == 0, 1])\n",
    "plt.scatter(X_standard[y == 1, 0], X_standard[y == 1, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_svc_decision_boundary(model, axis):\n",
    "    \n",
    "    x0, x1 = np.meshgrid(\n",
    "        np.linspace(axis[0], axis[1], int((axis[1] - axis[0]) * 100)).reshape(-1, 1),\n",
    "        np.linspace(axis[2], axis[3], int((axis[3] - axis[2]) * 100)).reshape(-1, 1)\n",
    "    )\n",
    "    X_new = np.c_[x0.ravel(), x1.ravel()]\n",
    "    \n",
    "    y_predict = model.predict(X_new)\n",
    "    zz = y_predict.reshape(x0.shape)\n",
    "    \n",
    "    from matplotlib.colors import ListedColormap\n",
    "    custom_cmap = ListedColormap(['#EF9A9A', '#FFF59D', '#90CAF9'])\n",
    "    \n",
    "    plt.contourf(x0, x1, zz, cmap=custom_cmap)\n",
    "    \n",
    "    w = model.coef_[0]\n",
    "    b = model.intercept_[0]\n",
    "    \n",
    "    plot_x = np.linspace(axis[0], axis[1], 200)\n",
    "    up_y = -w[0]/w[1] * plot_x - b/w[1] + 1/w[1]\n",
    "    down_y = -w[0]/w[1] * plot_x - b/w[1] - 1/w[1]\n",
    "    \n",
    "    up_index = (up_y >= axis[2]) & (up_y <= axis[3])\n",
    "    down_index = (down_y >= axis[2]) & (down_y <= axis[3])\n",
    "    \n",
    "    plt.plot(plot_x[up_index], up_y[up_index], color='black')\n",
    "    plt.plot(plot_x[down_index], down_y[down_index], color='black')\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1164ef390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_svc_decision_boundary(svc2, axis = [-3, 3, -3, 3])\n",
    "plt.scatter(X_standard[y == 0, 0], X_standard[y == 0, 1])\n",
    "plt.scatter(X_standard[y == 1, 0], X_standard[y == 1, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc.score(X_standard, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(75, 2)"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StandardScaler(copy=True, with_mean=True, with_std=True)"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "standardScaler.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train_standard = standardScaler.transform(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_test_standard = standardScaler.transform(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearSVC(C=0.01, class_weight=None, dual=True, fit_intercept=True,\n",
       "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
       "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
       "     verbose=0)"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc2.fit(X_train_standard, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc2.score(X_test_standard, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_predict = svc.predict(X_test_standard)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1104ef710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_svc_decision_boundary(svc, axis = [-3, 3, -3, 3])\n",
    "plt.scatter(X_test_standard[y_predict == 0, 0], X_test_standard[y_predict == 0, 1])\n",
    "plt.scatter(X_test_standard[y_predict == 1, 0], X_test_standard[y_predict == 1, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [],
   "source": [
    "knn_clf = KNeighborsClassifier(n_neighbors= 5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn_clf.fit(X_train_standard, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn_clf.score(X_test_standard, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
